
/* start /web-platform/scripts/web-platform/shop.core.js*/
SOE.Shop=function(config){this.config=config;this.config.sort=this.config.sort||'origPrice';this.products=[];if(!this.config.ajaxUrl){throw'Make sure `ajaxUrl` is set to a valid URAM URL when you instantiate the page.';}else if(!this.config.container){throw'Make sure `container` is set to a valid ID, or array of IDs when you instantiate the page.';}else if(!this.config.template){throw'Make sure `template` is set to a valid ID, array of IDs, or Underscore template function when you instantiate the page.';}};SOE.Shop.prototype.init=function(){SOE.Shop.currency=wpCookie('shop-currency')||'USD';this.symbolMap={USD:{symbol:'\u0024',method:'currencyFront'},AUD:{symbol:'A\u0024',method:'currencyFront'},DKK:{symbol:'kr',method:'currencyBack'},EUR:{symbol:'\u20AC',method:'currencyFront'},GBP:{symbol:'\u00A3',method:'currencyFront'},NOK:{symbol:'kr',method:'currencyBack'},SEK:{symbol:'kr',method:'currencyBack'},CHF:{symbol:'Fr',method:'currencyBack'},JPY:{symbol:'\u00A5',method:'currencyFront'},BRL:{symbol:'R\u0024',method:'currencyFront'},SOE:{symbol:'',method:'currencyFront'}};if($('.currency.dropdown').length){this.setCurrency();}
this.loadUramData();};SOE.Shop.prototype.getUramData=function(){$.ajax({url:globs.urls.uramAjaxUrl+this.config.ajaxUrl+SOE.Shop.currency,dataType:'json',context:this,success:function(uramData){this.formatUramData(uramData[this.config.objName]);}});};SOE.Shop.prototype.shopAjax=function(url){var _this=this;return $.ajax({url:url,dataType:'json',context:_this}).done(function(result,signature){return(signature==='success')?result:{error:'shop request failed'};})};SOE.Shop.prototype.loadUramData=function(){var _this=this;var result=0;var signature=1;var requests=[];if(SOE.Shop.currency!=='USD'){requests=[_this.shopAjax(globs.urls.uramAjaxUrl+_this.config.ajaxUrl.replace(/locale=[a-zA-Z_]{5}/,'locale=en_US')+'USD'),_this.shopAjax(globs.urls.uramAjaxUrl+_this.config.ajaxUrl+SOE.Shop.currency)];}else{requests=[_this.shopAjax(globs.urls.uramAjaxUrl+_this.config.ajaxUrl+SOE.Shop.currency)];}
$.when.apply($,requests).then(function(usdReq,usersCurrencyReq){if(typeof usersCurrencyReq!=='undefined'&&Array.isArray(usersCurrencyReq)){if(usdReq[signature]==='success'&&usersCurrencyReq[signature]==='success'){if(_this.config.objName==='products'){for(var item in usersCurrencyReq[result][_this.config.objName]){if(usdReq[result].errors.length===0){usersCurrencyReq[result][_this.config.objName][item]['productoptions'][0].usDollarAmount=usdReq[result][_this.config.objName][item]['productoptions'][0].price.split('.')[0].replace(/[^0-9]+/g,'');}else{usersCurrencyReq[result][_this.config.objName][item]['productoptions'][0].usDollarAmount=0;}}}
if(_this.config.objName==='stationcashproducts'){for(var index in usersCurrencyReq[result][_this.config.objName]){if(usdReq[result].errors.length===0){usersCurrencyReq[result][_this.config.objName][index].usDollarAmount=usdReq[result][_this.config.objName][index].price.formattedPrice.split('.')[0].replace(/[^0-9]+/g,'');}else{usersCurrencyReq[result][_this.config.objName][index].usDollarAmount=0;}}}
_this.formatUramData(usersCurrencyReq[result][_this.config.objName]);}}else{if(usdReq){if(_this.config.objName==='products'){for(var item in usdReq[_this.config.objName]){usdReq[_this.config.objName][item]['productoptions'][0].usDollarAmount=usdReq[_this.config.objName][item]['productoptions'][0].price.split('.')[0].replace(/[^0-9]+/g,'');}}
if(_this.config.objName==='stationcashproducts'){for(var index in usdReq[_this.config.objName]){usdReq[_this.config.objName][index].usDollarAmount=usdReq[_this.config.objName][index].price.formattedPrice.split('.')[0].replace(/[^0-9]+/g,'');}}
_this.formatUramData(usdReq[_this.config.objName]);}}},function(err){console.log('ERROR',err);})}
SOE.Shop.prototype.getNumber=function(num){return num.replace(/[^\d\.]+/g,'');};SOE.Shop.prototype.setCurrency=function(){var _this=this;$('.currency.dropdown').on('click','a',function(evt){SOE.Shop.currency=evt.target.dataset.currency;_this.loadUramData();$('#currency-text, .currency.dropdown .currency-text').html(currencyMap[SOE.Shop.currency]);if(SOE.Shop.currency!=='SOE'){wpCookie('shop-currency',SOE.Shop.currency,30);}});$('#currency-text, .currency.dropdown .currency-text').html(currencyMap[SOE.Shop.currency]);};SOE.Shop.prototype.currencyFront=function(price){var renderedCurrency=(globs.soelocale==='en_US')?this.symbolMap[SOE.Shop.currency].symbol+price.replace(/^\D+/g,'').replace(/\D+$/g,''):price;return renderedCurrency;};SOE.Shop.prototype.currencyBack=function(price){var renderedCurrency=(globs.soelocale==='en_US')?price.replace(/^\D+/g,'').replace(/\D+$/g,'')+this.symbolMap[SOE.Shop.currency].symbol:price;return renderedCurrency;};SOE.Shop.prototype.sortProducts=function(){var that=this;if(this.config.sort&&typeof this.config.sort==='function'){this.products.sort(this.config.sort);}else if(this.config.sort&&typeof this.config.sort!=='object'){this.products.sort(function(a,b){return that.getNumber(a[that.config.sort])-that.getNumber(b[that.config.sort]);});}else{this.products.sort(function(a,b){return that.config.sort.sortArray.indexOf(a[that.config.sort.sortProperty])-that.config.sort.sortArray.indexOf(b[that.config.sort.sortProperty]);});}};SOE.Shop.prototype.formatUramData=function(uramProducts){var counter=0;for(var k=0;k<uramProducts.length;k++){var currProduct=uramProducts[k];if((!this.config.blacklist||!_.contains(this.config.blacklist.list,currProduct[this.config.blacklist.propertyName]))&&(!this.config.whitelist||_.contains(this.config.whitelist.list,currProduct[this.config.whitelist.propertyName]))){this.reMapProductData(counter++,currProduct);}}
this.sortProducts();this.renderProducts();this.products=[];};SOE.Shop.prototype.renderProducts=function(){var template;var container=this.config.container;if(Array.isArray(this.config.container)){for(var k=0;k<this.config.container.length;k++){if(Array.isArray(this.config.template)&&this.config.template.length==this.config.container.length){if(typeof this.config.template[k]==='function'){template=this.config.template[k]({products:this.products});}else{template=_.template($(this.config.template[k]).html(),{products:this.products});}}else{template=_.template($(this.config.template).html(),{products:this.products});}
$('.spinner').fadeOut();$(container[k]).html(template);}}else{if(Array.isArray(this.config.template)){for(var arr=0;arr<this.config.template.length;arr++){if(typeof this.config.template[arr]==='function'){template+=this.config.template[arr]({products:this.products});}else{template+=_.template($(this.config.template[arr]).html(),{products:this.products});}}}else if(typeof this.config.template==='function'){template=this.config.template({products:this.products});}else{template=_.template($(this.config.template).html(),{products:this.products});}
$('.spinner').fadeOut();$(container).html(template);}
if(this.config.callback){this.config.callback();}};

/* end /web-platform/scripts/web-platform/shop.core.js*/

/* start /scripts/v4/_pages/shop-virtual-currency.js*/
SOE.Shop.prototype.reMapProductData=function(idx,product){'use strict';this.products.push({name:product.description,sku:product.fullSku,promo:product.promo,scPromo:product.stationCashPromo,pricePromo:product.pricePromo,highlight:(product.stationCashAmount===2500)?true:false,scOrigPrice:product.stationCashAmount,scSalePrice:product.stationCashPromoAmount,origPrice:this[this.symbolMap[SOE.Shop.currency].method](product.prePromotionPrice.formattedPrice),salePrice:this[this.symbolMap[SOE.Shop.currency].method](product.price.formattedPrice)});};try{var StationCash=new SOE.Shop({ajaxUrl:'/rest/commerce/11/stationcashproducts.action?gameCode='+globs.wdl.gameCode+'&responseType=json&currency=',objName:'stationcashproducts',container:'#dc-bar',template:'#dc-price-template',callback:function(){'use strict';$('#dc-bar').removeClass('loading');$('#dc-bar').toggleClass('has-amount-promo',($('#dc-bar .dcAmt del').length>0));$('#dc-bar').toggleClass('has-price-promo',($('#dc-bar .dcPrice del').length>0));}}).init();}catch(error){console.info(error);}
$(document).ready(function(){'use strict';$('.dc-faq').on('shown.bs.collapse hidden.bs.collapse',function(){var anyCollapsed=($('.dc-faq a.collapsed').length>0)?true:false;$('.faq-toggle-all').text(anyCollapsed?'Expand All':'Collapse All');});$('.faq-toggle-all').on('click',function(e){e.preventDefault();var anyCollapsed=($('.dc-faq a.collapsed').length>0)?true:false;$('.dc-faq .collapse').collapse(anyCollapsed?'show':'hide');});});

/* end /scripts/v4/_pages/shop-virtual-currency.js*/

/* start /web-platform/scripts/web-platform/component/global-nav.js*/
(function(){'use strict';var nonMember=_.template($('script.non-member').html());var member=_.template($('script.member').html());if(globs.wdl.userLoggedIn){$.ajax({url:'/get-rest-ticket',type:'POST',data:{type:0},context:this,success:function(sid){$.ajax({url:globs.urls.uramAjaxUrl+'/rest/commerce/11/allaccessinfo.action',dataType:'json',data:{'theme':globs.wdl.theme,'responseType':'json','sessionID':sid.successPayload.ticket},success:function(data){var memberData={scGrantDate:data.scGrantDate,scGrantClaimed:data.scGrantClaimed,expirationDate:data.expirationDate};$('.currency-balance-item').each(function(){var $this=$(this);var presenceField=$this.attr('data-currency-presence-field');var balanceField=$this.attr('data-currency-balance-field');if(!presenceField||(Object.hasOwnProperty.call(data,presenceField)&&data[presenceField]===true)){if(Object.hasOwnProperty.call(data,balanceField)){$this.removeClass('hidden').find('.currency-balance').text(SOE.Utils.addSeparators(data[balanceField]));}}});if(!data.akella){if(!data.member){$('#brandBarAllAccess').html(nonMember());}else{$('#brandBarAllAccess').html(member(memberData));$('#brandBarIsMember').text('My');$('#membershipLink').click(function(e){e.preventDefault();window.location.href=globs.urls.membershipMembership;});}
$('ul#brandBarOptions').trigger('reset');}}});}});}else{$('#brandBarAllAccess').html(nonMember());}})();

/* end /web-platform/scripts/web-platform/component/global-nav.js*/

/* start /scripts/v4/components/shop-code-redeem.js*/
$(document).ready(function(){'use strict';function updateRedeemButtonState(){$('#codeRedeemFormSubmit').toggleClass('disabled',!SOE.Utils.isValidGameCardCode($('#codeRedeemFormValue').val()));}
updateRedeemButtonState();$('#codeRedeemFormValue').on('keydown keypress change input',function(){updateRedeemButtonState();});$('#codeRedeemFormSubmit').on('click',function(){$('#codeRedeemForm').submit();});$('#codeRedeemForm').on('submit',function(){var code=$('#codeRedeemFormValue').val();if(SOE.Utils.isValidGameCardCode(code)){return true;}else{return false;}});});

/* end /scripts/v4/components/shop-code-redeem.js*/

/* start /scripts/v4/components/store-modal.js*/
$(document).on('click','.store-modal .continue > a',function(){'use strict';$('.store-modal').modal('hide');});

/* end /scripts/v4/components/store-modal.js*/

/* start /scripts/v4/components/newsletter-modal.js*/
$(document).ready(function(){'use strict';function emailFieldOK(){return DCUO.validateEmail($('#newsletterModalEmail').val().trim());}
function atLeastOneSystemChosen(){return $('#newsletterModalForm .system-select input:checked').length>0?true:false;}
function allTOSPPChecked(){return $('#newsletterModalForm .tos-pp input:not(:checked)').length===0;}
function updateSubmitButtonState(){$('#newsletterModalSubmit').toggleClass('disabled',!(emailFieldOK()&&atLeastOneSystemChosen()&&allTOSPPChecked()));}
function requestSuccessfulOrUndefined(req){if(req){return(req[0]&&req[0].success)?true:false;}else{return true;}}
function requestHasErrors(req){if(req){return(req[0]&&req[0].errorsList)?true:false;}else{return false;}}
function reduceErrors(list,req){if(req&&req[0]&&req[0].errorsList){return list.concat(req[0].errorsList);}else{return list;}}
$('#nwsltrSignup').on('click',function(){$('#nwsltrModal').modal();$('#nwsltrModal input[type=email]').val('');$('#nwsltrModal input[type=checkbox]').prop('checked',false);updateSubmitButtonState();});$('#newsletterModalForm input').on('keydown keypress change input',function(){updateSubmitButtonState();});$('#newsletterModalSubmit').on('click',function(e){e.preventDefault();if($(this).hasClass('disabled')){return;}
var $newsletterModal=$('#nwsltrModal');var $errorText=$('.result-error',$newsletterModal);var emailAddress=$('#newsletterModalEmail').val().trim();var saves=[];var errorsList;if(emailFieldOK()&&atLeastOneSystemChosen()&&allTOSPPChecked()){$newsletterModal.addClass('working');$('#newsletterModalForm .system-select input:checked').each(function(i,e){var cid=$(e).attr('data-cid');saves.push($.ajax({url:globs.urls.appengRestUrl+'/rest/saveEmail',type:'POST',data:{campaignId:cid,email:emailAddress},dataType:'json',timeout:10000}));});$.when.apply($,saves).done(function(a1,a2,a3){var results;$newsletterModal.removeClass('working');if(saves.length==1){results=[[a1,a2,a3],undefined,undefined];}else{results=[a1,a2,a3];}
if(_.every(results,requestSuccessfulOrUndefined)){$newsletterModal.addClass('success');}else if(_.some(results,requestHasErrors)){$newsletterModal.addClass('error');errorsList=_.uniq(_.reduce(results,reduceErrors,[]));$errorText.html('General problem: '+errorsList.join(', '));}else{$newsletterModal.addClass('error');$errorText.html('A server error occurred. Please try again later.');}}).fail(function(){$newsletterModal.removeClass('working').addClass('error');$errorText.html('A network error occurred. Please try again later.');});}});(function checkNewsletter(param){var checkboxIds={pc:'#newsletterPlatformPC',ps:'#newsletterPlatformPS',ps4:'#newsletterPlatformPS',playstation:'#newsletterPlatformPS',xbox:'#newsletterPlatformXbox',switch:'#newsletterPlatformSwitch'};var $platformCheckbox;if(param&&checkboxIds[param.toLowerCase()]){$platformCheckbox=$(checkboxIds[param.toLowerCase()]);if($platformCheckbox.length>0){$('#nwsltrModal').modal();$platformCheckbox.prop('checked',true);updateSubmitButtonState();DTKR.trackEvent({eventCategory:'modal',eventAction:'open with page',eventLabel:param.toLowerCase()});}}})(globs.urlparameters.newsletter);});

/* end /scripts/v4/components/newsletter-modal.js*/
